//
//  yxpTextField.m
//  TestProject
//
//  Created by 杨小平 on 14-8-30.
//  Copyright (c) 2014年 yangxiaoping. All rights reserved.
//

#import "yxpTextField.h"

@interface yxpTextField()<UITextFieldDelegate>
{
    UITextField *_textField;
}

@end


@implementation yxpTextField

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [self createTextView];
    
}
- (void)createTextView
{
    _textField=[[UITextField alloc] initWithFrame:CGRectMake(10, 74, 300, 40)];
    _textField.layer.cornerRadius=5.0;
    _textField.layer.masksToBounds=YES;
    _textField.layer.borderColor=[UIColor skyGreenColor].CGColor;
    _textField.layer.borderWidth=1.0;
    _textField.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;//设置其输入内容竖直居中
    
    UIImageView *userImage=[[UIImageView alloc] initWithFrame:CGRectMake(6, 6, 28, 28)];
    userImage.image=[UIImage imageNamed:@"TextFiele_left_icon"];
    UIView *userImageVIew=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 40)];
    [userImageVIew addSubview:userImage];
    
    _textField.leftView=userImageVIew;//设置输入框内左边的图标
    
    //[self.tf11setClearButtonMode:UITextFieldViewModeWhileEditing];//右侧删除按钮
    
    _textField.clearsOnBeginEditing = NO; //再次编辑就清空
    
    //内容对齐方式
    _textField.textAlignment = NSTextAlignmentLeft;
    
    //设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动
    _textField.adjustsFontSizeToFitWidth = YES;
    
    //设置自动缩小显示的最小字体大小
    _textField.minimumFontSize = 20;
    
    _textField.leftViewMode=UITextFieldViewModeAlways;
    
    _textField.placeholder=@"TextField";//默认显示的字
    
    _textField.secureTextEntry=NO;//设置成密码格式
    
    //是否纠错
    _textField.autocorrectionType = UITextAutocorrectionTypeNo;
    
    _textField.keyboardType=UIKeyboardTypeDefault;//设置键盘类型为默认的
    
    _textField.returnKeyType=UIReturnKeyDefault;//返回键的类型
    
    _textField.delegate=self;//设置委托
    
    [self.view addSubview:_textField];
}
/*
 一．基本属性设置
 1. 创建一个文本输入框
 UITextField*textField=[[UITextField alloc]initWithFrame:CGRectMake(10, 30, 300, 30)];
 
 2. 设置边框样式
 textField.borderStyle = UITextBorderStyleRoundedRect;//圆角
 typedef enum {
 UITextBorderStyleNone,无边框
 UITextBorderStyleLine,有边框
 UITextBorderStyleBezel,有边框和阴影
 UITextBorderStyleRoundedRect圆角
 } UITextBorderStyle;
 
 3.背景颜色是文本内容部分的颜色
 textField.backgroundColor = [UIColor blueColor];
 4. 设置背景图片
 textField.background=[UIImage imageNamed:@"Icon.png"];
 5.提示文字
 textField.placeholder = @"请输入单词";
 6.设置和读取 文字内容
 textField.text = @”我是文本框”;
 (也可以编辑之后获取文本框内容)
 NSString * str = textField.text;
 
 7. 设置字体格式
 [textField setFont:[UIFont fontWithName:@"Arial" size:30]];
 NSLog(@"%@", [UIFont familyNames]);//查看字体集
 8.密文输入
 textField.secureTextEntry = YES;
 9.键盘类型
 textField.keyboardType = UIKeyboardTypeNumberPad;//数字键UIKeyboardTypeDefault,                // 当前键盘（默认）
 UIKeyboardTypeASCIICapable,           // 字母输入键
 UIKeyboardTypeNumbersAndPunctuation,  //数字和符号
 UIKeyboardTypeURL,                    URL键盘
 UIKeyboardTypeNumberPad,             数字键盘
 UIKeyboardTypePhonePad,              电话号码输入键盘
 UIKeyboardTypeEmailAddress, //邮件地址输入键盘
 
 } UIKeyboardType;
 
 10.键盘风格
 textView.keyboardAppearance=UIKeyboardAppearanceDefault；
 UIKeyboardAppearanceDefault， 默认外观，浅灰色
 UIKeyboardAppearanceAlert，     深灰 石墨色
 
 11.设置弹出视图（不弹键盘弹图片）
 UIImageView * imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"Icon.png"]];
 imageView.frame = CGRectMake(0, 100, 320, 100);（跟位置和宽无关）
 textField.inputView = imageView;
 
 12.设置左视图
 UIView * leftview = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100   )];//只有宽度起到了作用
 textField.leftView = leftview;
 leftview.backgroundColor = [UIColor purpleColor];
 要设置左视图模式
 textField.leftViewMode = UITextFieldViewModeAlways;
 
 
 13 还可以设置右视图
 textField.rightView = rightView;
 textField.rightViewMode = UITextFieldViewModeAlways;、、这个右视图模式会影响清除按钮模式
 14. 设置清除按钮模式
 textField.clearButtonMode = UITextFieldViewModeAlways;//出现小叉子
 typedef enum {
 UITextFieldViewModeNever,、、从不出现
 UITextFieldViewModeWhileEditing,编辑时显示
 UITextFieldViewModeUnlessEditing,不编辑时
 UITextFieldViewModeAlways  总是显示
 
 } UITextFieldViewMode;

15.再次编辑时是否清空之前内容；默认NO；
text2.clearsOnBeginEditing = YES;

16.编辑内容时垂直对齐方式
text2.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;//剧中显示、默认是top显示对齐
文字内容剧中显示
text2.textAlignment = UITextAlignmentCenter;
17 设置滚动
text2.font = [UIFont systemFontOfSize:30];//可以设置文字大小
text2.adjustsFontSizeToFitWidth = YES;//默认是NO  YES当充满边框时，文字会缩小，当小到一定程度时仍然会滚动；自适应宽度；
//设置滚动时最小字号（与滚动相关）（前提：要比设置的字体小，否则没有意义）
text2.minimumFontSize = 20;（没有设置这一项文字也会缩小和滚动）
18. 设置return键
text2.returnKeyType = UIReturnKeyGoogle;search
typedef enum {
    UIReturnKeyDefault, 默认 灰色按钮，标有Return
    UIReturnKeyGo,      标有Go的蓝色按钮
    UIReturnKeyGoogle,标有Google的蓝色按钮，用语搜索
    UIReturnKeyJoin,标有Join的蓝色按钮
    UIReturnKeyNext,标有Next的蓝色按钮
    UIReturnKeyRoute,标有Route的蓝色按钮
    UIReturnKeySearch,标有Search的蓝色按钮
    UIReturnKeySend,标有Send的蓝色按钮
    UIReturnKeyYahoo,标有Yahoo的蓝色按钮
    UIReturnKeyYahoo,标有Yahoo的蓝色按钮
    UIReturnKeyEmergencyCall, 紧急呼叫按钮
} UIReturnKeyType;
19. 首字母是否大写
text2.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;//所有字母大写
typedef enum {
    UITextAutocapitalizationTypeNone, 不自动大写
    UITextAutocapitalizationTypeWords,  单词首字母大写
    UITextAutocapitalizationTypeSentences,  句子的首字母大写
    UITextAutocapitalizationTypeAllCharacters, 所有字母都大写
} UITextAutocapitalizationType;
 
 
 

二  关于文本编辑框设置代理
a.//是否可以进入编辑模式（是否可进入输入状态）
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    return  YES;//NO进入不了编辑模式
}
b.//进入编辑模式
- (void)textFieldDidBeginEditing:(UITextField *)textField{
    NSLog(@"进入编辑模式时调用");
}
c.//是否退出编辑模式（是否可以结束输入状态）
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    return YES;//NO 退出不了编辑模式
}
d.//退出编辑模式// 结束输入状态后调用
- (void)textFieldDidEndEditing:(UITextField *)textField{
    NSLog(@"退出编辑模式");
}
e.//是否可以点击清除按钮
-  (BOOL)textFieldShouldClear:(UITextField *)textField{
    //textField.text = @"已经清除";
    return NO;//NO不清除
    
}
f. // 点击键盘上Return按钮时候调用
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    //官方 取消第一响应者（就是退出编辑模式收键盘）
    [textField resignFirstResponder];
    return YES;
}
g.//当输入任何字符时，代理调用该方法
-(BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
//当输入任何字符时，代理调用该方法，如果返回YES则这次输入可以成功，如果返回NO，不能输入成功
//range表示光标位置，只有location，length == 0；
//string表示这次输入的字符串。
{
    
    NSLog(@"range = %@  string = %@",NSStringFromRange(range),string);
    return str.length < 10;
    //textField.text超过了10个字符，返回NO，不让输入成功。(最多输入10个)
    //textField.text输入后不到10个字符，返回YES，使输入成功。
    return YES;
}
 */

@end
